package com.mycar2w.cloud.entity;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * created time 2017/4/1
 *
 * @author ljc
 * @version V1.0
 * 汽车底盘制动参数
 */
@Entity
@Table(name = "car_chassis_brake_parameter", schema = "mycar2wnew", catalog = "")
public class CarChassisBrakeParameter {
    private Long id;
    private String driveMode;
    private String boosterType;
    private String frontSuspensionType;
    private String rearSuspensionType;
    private String frontBrakeType;
    private String rearBrakeType;
    private String parkingBrakeType;
    private String frontTyreSpecification;
    private String rearTyreSpecification;
    private String silencer;
    private String leftFrontShockAbsorber;
    private String rightFrontShockAbsorber;
    private String rightRearShockAbsorber;
    private Long carId;

    @Id
    @Column(name = "id", nullable = false)
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    @Basic
    @Column(name = "drive_mode", nullable = true, length = 50)
    public String getDriveMode() {
        return driveMode;
    }

    public void setDriveMode(String driveMode) {
        this.driveMode = driveMode;
    }

    @Basic
    @Column(name = "booster_type", nullable = true, length = 50)
    public String getBoosterType() {
        return boosterType;
    }

    public void setBoosterType(String boosterType) {
        this.boosterType = boosterType;
    }

    @Basic
    @Column(name = "front_suspension_type", nullable = true, length = 50)
    public String getFrontSuspensionType() {
        return frontSuspensionType;
    }

    public void setFrontSuspensionType(String frontSuspensionType) {
        this.frontSuspensionType = frontSuspensionType;
    }

    @Basic
    @Column(name = "rear_suspension_type", nullable = true, length = 50)
    public String getRearSuspensionType() {
        return rearSuspensionType;
    }

    public void setRearSuspensionType(String rearSuspensionType) {
        this.rearSuspensionType = rearSuspensionType;
    }

    @Basic
    @Column(name = "front_brake_type", nullable = true, length = 50)
    public String getFrontBrakeType() {
        return frontBrakeType;
    }

    public void setFrontBrakeType(String frontBrakeType) {
        this.frontBrakeType = frontBrakeType;
    }

    @Basic
    @Column(name = "rear_brake_type", nullable = true, length = 50)
    public String getRearBrakeType() {
        return rearBrakeType;
    }

    public void setRearBrakeType(String rearBrakeType) {
        this.rearBrakeType = rearBrakeType;
    }

    @Basic
    @Column(name = "parking_brake_type", nullable = true, length = 50)
    public String getParkingBrakeType() {
        return parkingBrakeType;
    }

    public void setParkingBrakeType(String parkingBrakeType) {
        this.parkingBrakeType = parkingBrakeType;
    }

    @Basic
    @Column(name = "front_tyre_specification", nullable = true, length = 50)
    public String getFrontTyreSpecification() {
        return frontTyreSpecification;
    }

    public void setFrontTyreSpecification(String frontTyreSpecification) {
        this.frontTyreSpecification = frontTyreSpecification;
    }

    @Basic
    @Column(name = "rear_tyre_specification", nullable = true, length = 50)
    public String getRearTyreSpecification() {
        return rearTyreSpecification;
    }

    public void setRearTyreSpecification(String rearTyreSpecification) {
        this.rearTyreSpecification = rearTyreSpecification;
    }

    @Basic
    @Column(name = "silencer", nullable = true)
    public String getSilencer() {
        return silencer;
    }

    public void setSilencer(String silencer) {
        this.silencer = silencer;
    }

    @Basic
    @Column(name = "left_front_shock_absorber", nullable = true)
    public String getLeftFrontShockAbsorber() {
        return leftFrontShockAbsorber;
    }

    public void setLeftFrontShockAbsorber(String leftFrontShockAbsorber) {
        this.leftFrontShockAbsorber = leftFrontShockAbsorber;
    }

    @Basic
    @Column(name = "right_front_shock_absorber", nullable = true)
    public String getRightFrontShockAbsorber() {
        return rightFrontShockAbsorber;
    }

    public void setRightFrontShockAbsorber(String rightFrontShockAbsorber) {
        this.rightFrontShockAbsorber = rightFrontShockAbsorber;
    }

    @Basic
    @Column(name = "right_rear_shock_absorber", nullable = true)
    public String getRightRearShockAbsorber() {
        return rightRearShockAbsorber;
    }

    public void setRightRearShockAbsorber(String rightRearShockAbsorber) {
        this.rightRearShockAbsorber = rightRearShockAbsorber;
    }

    @Basic
    @Column(name = "car_id", nullable = true)
    public Long getCarId() {
        return carId;
    }

    public void setCarId(Long carId) {
        this.carId = carId;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        CarChassisBrakeParameter that = (CarChassisBrakeParameter) o;

        if (id != null ? !id.equals(that.id) : that.id != null) return false;
        if (driveMode != null ? !driveMode.equals(that.driveMode) : that.driveMode != null) return false;
        if (boosterType != null ? !boosterType.equals(that.boosterType) : that.boosterType != null) return false;
        if (frontSuspensionType != null ? !frontSuspensionType.equals(that.frontSuspensionType) : that.frontSuspensionType != null)
            return false;
        if (rearSuspensionType != null ? !rearSuspensionType.equals(that.rearSuspensionType) : that.rearSuspensionType != null)
            return false;
        if (frontBrakeType != null ? !frontBrakeType.equals(that.frontBrakeType) : that.frontBrakeType != null)
            return false;
        if (rearBrakeType != null ? !rearBrakeType.equals(that.rearBrakeType) : that.rearBrakeType != null)
            return false;
        if (parkingBrakeType != null ? !parkingBrakeType.equals(that.parkingBrakeType) : that.parkingBrakeType != null)
            return false;
        if (frontTyreSpecification != null ? !frontTyreSpecification.equals(that.frontTyreSpecification) : that.frontTyreSpecification != null)
            return false;
        if (rearTyreSpecification != null ? !rearTyreSpecification.equals(that.rearTyreSpecification) : that.rearTyreSpecification != null)
            return false;
        if (silencer != null ? !silencer.equals(that.silencer) : that.silencer != null) return false;
        if (leftFrontShockAbsorber != null ? !leftFrontShockAbsorber.equals(that.leftFrontShockAbsorber) : that.leftFrontShockAbsorber != null)
            return false;
        if (rightFrontShockAbsorber != null ? !rightFrontShockAbsorber.equals(that.rightFrontShockAbsorber) : that.rightFrontShockAbsorber != null)
            return false;
        if (rightRearShockAbsorber != null ? !rightRearShockAbsorber.equals(that.rightRearShockAbsorber) : that.rightRearShockAbsorber != null)
            return false;
        if (carId != null ? !carId.equals(that.carId) : that.carId != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = id != null ? id.hashCode() : 0;
        result = 31 * result + (driveMode != null ? driveMode.hashCode() : 0);
        result = 31 * result + (boosterType != null ? boosterType.hashCode() : 0);
        result = 31 * result + (frontSuspensionType != null ? frontSuspensionType.hashCode() : 0);
        result = 31 * result + (rearSuspensionType != null ? rearSuspensionType.hashCode() : 0);
        result = 31 * result + (frontBrakeType != null ? frontBrakeType.hashCode() : 0);
        result = 31 * result + (rearBrakeType != null ? rearBrakeType.hashCode() : 0);
        result = 31 * result + (parkingBrakeType != null ? parkingBrakeType.hashCode() : 0);
        result = 31 * result + (frontTyreSpecification != null ? frontTyreSpecification.hashCode() : 0);
        result = 31 * result + (rearTyreSpecification != null ? rearTyreSpecification.hashCode() : 0);
        result = 31 * result + (silencer != null ? silencer.hashCode() : 0);
        result = 31 * result + (leftFrontShockAbsorber != null ? leftFrontShockAbsorber.hashCode() : 0);
        result = 31 * result + (rightFrontShockAbsorber != null ? rightFrontShockAbsorber.hashCode() : 0);
        result = 31 * result + (rightRearShockAbsorber != null ? rightRearShockAbsorber.hashCode() : 0);
        result = 31 * result + (carId != null ? carId.hashCode() : 0);
        return result;
    }
}
